iT邦幫忙

2022 iThome 鐵人賽

DAY 7
1
自我挑戰組

【從工程師升級成為資深工程師的那檔事】 系列 第 7

【從工程師升級成為資深工程師的那檔事 Day7】淺談 OOA與 OOD

  • 分享至 

  • xImage
  •  

程式的撰寫有很多種方式 OOP、FP、AOP、COP...等(之後在專門做一期為大家解說),
不過這個系列還是主要專注在物件導向程式設計(OOP)上面跟大家分享。

在任職的過程中職級會隨著我們在職的時間上升,在這個過程中對於我們的能力要求也會隨之跟著提升。
這時會開始從在前輩們所建構的框架下撰寫程式,慢慢變成撰寫甚至規劃框架的前輩。

物件導向分析(OOA,Object-Oriented Analysis)

在做分析時會將模組分成5個層次

  • 主題層
  • 對象類層
  • 結構層
  • 屬性層
  • 服務層

和5個活動

  • 標識對象類
  • 標識結構
  • 定義主題
  • 定義屬性
  • 定義服務
    由這5個層次和5個活動來表達整個模組的架構......
    (後面一千字省略)

如何分析

我們可以把分成下面幾個步驟進行分析:

  1. 將用戶的需求定義程抽象類別/介面
  2. 透過資料(Data)的流向描述各個抽象類別/介面間的交互關係
  3. 定義抽象類別中所要儲存的屬性(狀態、常數...等)
  4. 定義功能向的方法(method)

物件導向設計(OOD,Object-Oriented Design)

物件導向設計主要是將OOA的結果再次加工,加工成可以撰寫程式的藍圖。

如何設計

  1. 描述實作的類別與抽象類別/介面間的依賴關係
  2. 透過不同的設計模式來實現各類別的交互關係
  3. 定義每個類別/介面中系統向的方法(method)
  4. 將系統運作的方式用時序圖來描述

結語

我們其實可以簡單將OOA看作將需求變成物件的分析
而OOD則是將系統運作的方式寫成藍圖

其實 OOA、OOD有很多更詳細的說明,
但是將OOA、OOD的分工簡化成這樣主要因為,很多定義為了要一般化,內容真的是寫的艱澀難懂。
另一方面,我們在使用OOA及OOD的過程中,不會因為多玩轉幾個名詞而變厲害,
而是在學習後歸納成自己平時使用的開發模式,才是真的將這些內容變成自己的。


上一篇
【從工程師升級成為資深工程師的那檔事 Day6】SOLID 五大原則 - 依賴反轉原則
下一篇
【從工程師升級成為資深工程師的那檔事Day 8】淺談設計模式
系列文
【從工程師升級成為資深工程師的那檔事】 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言